load cameraParams;

img = undistortImage(imread('C:\Users\Lenovo\Desktop\第二周-激光三角法\扣空版\激光平面标定\标定数据（20mm）\26.png'), cameraParams) ;
img = rgb2gray (img);%转换成灰度图
figure;imshow(img);

%获取图像尺寸，以及激光线大致区域
[h, w] = size(img);
crop_w = [920,1080];
crop_h = [480,960];
%crop_w = [845,1040];
%crop_h = [365,846];

%用于显示记录激光线
%maxImg = zeros(size(img,1),size(img,2));
maxImg = zeros(size(img));
%用于记录激光点像素坐标
uv = [] ;

%设置亮度阈值用于准确判断激光线
T = 150;

% 寻找每行的最大值
for i = crop_h(1) : crop_h(2)
    %保存每一行亮度最大值max0，并且记录该值的坐标max_ij
    max0 = img(i, crop_w(1));
    max_ij = [i, crop_w(1)];
    for j = crop_w(1):crop_w(2)
        if img(i, j) > max0 && img(i, j) > T
            max0 = img(i, j);
            max_ij = [i, j];
        end
    end
    %max比初始值大时，说明成功找到大于阈值t的激光点，记录该点
    %to do对于uv的操作，每循环一次，就向uv=[]中加入一个点
	uv = [uv;[max_ij(2),max_ij(1)]];
    %uv = [uv;max_ij];i:列,j:行
    maxImg(max_ij(1),max_ij(2))=255;
end

figure;imshow(maxImg);title('激光线提取')
%保存提取激光线的像素坐标
save uv uv;